Micron Document
<!DOCTYPE html>
<html class="client-nojs vector-feature-night-mode-disabled vector-feature-language-in-header-enabled vector-feature-language-in-main-page-header-disabled vector-feature-page-tools-pinned-disabled vector-feature-toc-pinned-clientpref-1 vector-feature-main-menu-pinned-disabled vector-feature-limited-width-clientpref-1 vector-feature-limited-width-content-enabled vector-feature-custom-font-size-clientpref-1 vector-feature-appearance-pinned-clientpref-1 vector-sticky-header-enabled" lang="en" dir="ltr"><head>
<meta charset="UTF-8">
<title>Database refactoring</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<link rel="canonical" href="https://en.wikipedia.org/wiki/Database_refactoring"> <link href="./mw/ext.cite.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.icons.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.search.codex.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/skins.vector.styles.css" rel="stylesheet" type="text/css">
<link href="./mw/user.styles.css" rel="stylesheet" type="text/css">
<meta name="ResourceLoaderDynamicStyles" content="">
<link rel="stylesheet" type="text/css" href="./mw/site.styles.css">
<link rel="stylesheet" type="text/css" href="./mw/noscript.css">
<link rel="stylesheet" type="text/css" href="./footer.css">
<link rel="stylesheet" type="text/css" href="./vector-2022.css">
</head>
<body class="skin--responsive skin-vector skin-vector-search-vue mediawiki ltr sitedir-ltr mw-hide-empty-elt ns-0 ns-subject page-Database_refactoring rootpage-Database_refactoring skin-vector-2022 action-view">
<div class="mw-page-container">
<div class="mw-page-container-inner">
<div class="mw-content-container">
<main id="content" class="mw-body">
<header class="mw-body-header vector-page-titlebar">
<h1 id="firstHeading" class="firstHeading mw-first-heading">
<span id="openzim-page-title" class="mw-page-title-main"><span class="mw-page-title-main">Database refactoring</span></span>
</h1>
</header>
<a id="top"></a>
<div id="bodyContent" class="vector-body ve-init-mw-desktopArticleTarget-targetContainer" aria-labelledby="firstHeading" data-mw-ve-target-container="">
<div id="mw-content-text" class="mw-body-content mw-content-ltr" lang="en" dir="ltr"><div class="mw-content-ltr mw-parser-output" lang="en" dir="ltr"><p>A <b>database refactoring</b> is a simple change to a <a href="Database_schema" title="Database schema">database schema</a> that improves its design while retaining both its behavioral and informational semantics. Database refactoring does not change the way data is interpreted or used and does not fix <a href="Software_bug" title="Software bug">bugs</a> or add new functionality. Every refactoring to a database leaves the system in a working state, thus not causing maintenance lags, provided the meaningful data exists in the production environment.
</p><p>A database refactoring is conceptually more difficult than a <a href="Code_refactoring" title="Code refactoring">code refactoring</a>; code refactorings only need to maintain behavioral semantics while database refactorings also must maintain informational semantics.
</p><p>A database schema is typically refactored for one of several reasons:
</p>
<ol><li>To develop the schema in an evolutionary manner in parallel with the evolutionary design of the rest of the system.</li>
<li>To fix design problems with an existing legacy database schema. Database refactorings are often motivated by the desire for <a href="Database_normalization" title="Database normalization">database normalization</a> of an existing production database, typically to "clean up" the design of the database.</li>
<li>To implement what would be a large (and potentially risky) change as a series of small, low-risk changes.</li></ol>
<meta property="mw:PageProp/toc">
<div class="mw-heading mw-heading2"><h2 id="Categories_of_database_refactoring">Categories of database refactoring</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1251242444">
/* start https://en.wikipedia.org/ */


.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}@media print{body.ns-0 .mw-parser-output .ambox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style>
<p>In 2006 Scott Ambler, Pramod Sadalage<sup id="cite_ref-database_refactoring_1-0" class="reference"><a href="#cite_note-database_refactoring-1"><span class="cite-bracket">[</span>1<span class="cite-bracket">]</span></a></sup> describe the following categories of database refactoring:<sup id="cite_ref-embler_db_refactoring_2-0" class="reference"><a href="#cite_note-embler_db_refactoring-2"><span class="cite-bracket">[</span>2<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Architecture Refactoring</li></ul>
<dl><dd><dl><dd>A change which improves the overall manner in which external programs interact with a database.</dd></dl></dd></dl>
<p>Methods of Architecture Refactoring category: Add CRUD Methods; Add Mirror Table; Add Read Method; Encapsulate Table With View; Introduce Calculation Method; Introduce Index; Introduce Read Only Table; Migrate Method From Database; Migrate Method To Database; Replace Method(s) With View; Replace View With Methods(s); Use Official Data Source.
</p>
<ul><li>Structural Refactoring</li></ul>
<dl><dd><dl><dd>A change to the table structure of your database schema.</dd></dl></dd></dl>
<p>Methods of Structural Refactoring category: Drop Column; Drop Table; Drop View; Introduce Calculated Column; Introduce Surrogate Key; Merge Columns; Merge Tables; Move Column; Rename Column; Rename Table; Rename View; Replace LOB With Table; Replace Column; Replace One-To-Many With Associative Tables; Replace Surrogate Key With Natural Key; Split Column; Split Table.
</p>
<ul><li>Data Quality Refactoring</li></ul>
<dl><dd><dl><dd>A change which improves and/or ensures the consistency and usage of the values stored within the database.</dd></dl></dd></dl>
<p>Methods of Data Quality Refactoring category: Add Lookup Table; Apply Standard Codes; Apply Standard Type; Consolidate Key Strategy; Drop Column Constraint; Drop Default Value; Drop Non Nullable; Introduce Column Constraint; Introduce Common Format; Introduce Default Value; Make Column Non Nullable; Move Data; Replace Type Code With Property Flags.
</p>
<ul><li>Referential Integrity Refactoring</li></ul>
<dl><dd><dl><dd>A change which ensures that a referenced row exists within another table and/or that ensures that a row which is no longer needed is removed appropriately.</dd></dl></dd></dl>
<p>Methods of Referential Integrity Refactoring category: Add Foreign Key Constraint; Add Trigger for Calculated Column; Drop Foreign Key Constraint; Introduce Cascading Delete; Introduce Hard Delete; Introduce Soft Delete; Introduce Trigger for History.
</p>
<ul><li>Transformation</li></ul>
<dl><dd><dl><dd>A change which changes the semantics of your database schema by adding new elements to it or by modifying existing elements.</dd></dl></dd></dl>
<p>Methods of Transformation category: Insert Data; Introduce New Column; Introduce New Table; Introduce View; Update Data.
</p>
<ul><li>Method Refactoring</li></ul>
<dl><dd><dl><dd>A change which improves the quality of a stored procedure, stored function, or trigger.</dd></dl></dd></dl>
<p>Methods of the Method Refactoring category: Parameterize Methods; Remove Parameter; Rename Method; Reorder Parameters; Replace Parameter with Explicit Methods; Consolidate Conditional Expression; Decompose Conditional; Extract Method; Introduce Variable; Remove Control Flag; Remove Middle Man; Replace Literal with Table Lookup; Replace Nested; Conditional with Guard Clauses; Split Temporary Variable; Substitute Algorithm.
</p><p>In 2019 Vladislav Struzik supplemented the categories of database refactoring with a new one:<sup id="cite_ref-access_refactoring_1_3-0" class="reference"><a href="#cite_note-access_refactoring_1-3"><span class="cite-bracket">[</span>3<span class="cite-bracket">]</span></a></sup>
</p>
<ul><li>Access Refactoring</li></ul>
<dl><dd><dl><dd>A change which relates to data access.</dd></dl></dd></dl>
<p>Methods of the Access Refactoring category:<sup id="cite_ref-access_refactoring_2_4-0" class="reference"><a href="#cite_note-access_refactoring_2-4"><span class="cite-bracket">[</span>4<span class="cite-bracket">]</span></a></sup><sup id="cite_ref-access_refactoring_medium_5-0" class="reference"><a href="#cite_note-access_refactoring_medium-5"><span class="cite-bracket">[</span>5<span class="cite-bracket">]</span></a></sup> Change Authentication Attributes; Revoke Authorization Privileges; Grant Authorization Privileges; Extract Database Schema; Merge Database Schemas.
</p>
<div class="mw-heading mw-heading2"><h2 id="Process_of_database_refactoring">Process of database refactoring</h2></div>
<p>The process of database refactoring is the act of applying database refactorings to evolve an existing database schema (database refactoring is a core practice of <a href="Evolutionary_database_design" title="Evolutionary database design">evolutionary database design</a>). There are three considerations that need to be taken into account:
</p>
<ol><li>How a single refactoring is implemented</li>
<li>How database refactorings are tracked and shared within organizations</li>
<li>How a series of database refactorings are applied</li></ol>
<div class="mw-heading mw-heading2"><h2 id="See_also">See also</h2></div>
<ul><li><a href="Database_testing" title="Database testing">Database testing</a></li>
<li><a href="Data_migration" title="Data migration">Data migration</a></li>
<li><a href="Denormalization" title="Denormalization">Denormalization</a></li>
<li><a href="Refactoring" class="mw-redirect" title="Refactoring">Refactoring</a></li>
<li><a href="Test-driven_development" title="Test-driven development">Test-driven development</a></li>
<li><a href="Unit_testing" title="Unit testing">Unit testing</a></li></ul>
<div class="mw-heading mw-heading2"><h2 id="References">References</h2></div>
<style data-mw-deduplicate="TemplateStyles:r1239543626">
/* start https://en.wikipedia.org/ */


.mw-parser-output .reflist{margin-bottom:0.5em;list-style-type:decimal}@media screen{.mw-parser-output .reflist{font-size:90%}}.mw-parser-output .reflist .references{font-size:100%;margin-bottom:0;list-style-type:inherit}.mw-parser-output .reflist-columns-2{column-width:30em}.mw-parser-output .reflist-columns-3{column-width:25em}.mw-parser-output .reflist-columns{margin-top:0.3em}.mw-parser-output .reflist-columns ol{margin-top:0}.mw-parser-output .reflist-columns li{page-break-inside:avoid;break-inside:avoid-column}.mw-parser-output .reflist-upper-alpha{list-style-type:upper-alpha}.mw-parser-output .reflist-upper-roman{list-style-type:upper-roman}.mw-parser-output .reflist-lower-alpha{list-style-type:lower-alpha}.mw-parser-output .reflist-lower-greek{list-style-type:lower-greek}.mw-parser-output .reflist-lower-roman{list-style-type:lower-roman}


/* end https://en.wikipedia.org/ */
</style><div class="reflist">
<div class="mw-references-wrap"><ol class="references">
<li id="cite_note-database_refactoring-1"><span class="mw-cite-backlink"><b><a href="#cite_ref-database_refactoring_1-0">^</a></b></span> <span class="reference-text"> <i>Scott Ambler, Pramod Sadalage</i> Refactoring Databases: Evolutionary Database Design - Addison-Wesley Professional; 1st edition (March 3, 2006) - 384 p. - <style data-mw-deduplicate="TemplateStyles:r1238218222">
/* start https://en.wikipedia.org/ */


.mw-parser-output cite.citation{font-style:inherit;word-wrap:break-word}.mw-parser-output .citation q{quotes:"\"""\"""'""'"}.mw-parser-output .citation:target{background-color:rgba(0,127,255,0.133)}.mw-parser-output .id-lock-free.id-lock-free a{background:url("./mw/Lock-green.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-limited.id-lock-limited a,.mw-parser-output .id-lock-registration.id-lock-registration a{background:url("./mw/Lock-gray-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .id-lock-subscription.id-lock-subscription a{background:url("./mw/Lock-red-alt-2.svg")right 0.1em center/9px no-repeat}.mw-parser-output .cs1-ws-icon a{background:url("./mw/Wikisource-logo.svg")right 0.1em center/12px no-repeat}body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-free a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-limited a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-registration a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .id-lock-subscription a,body:not(.skin-timeless):not(.skin-minerva) .mw-parser-output .cs1-ws-icon a{background-size:contain;padding:0 1em 0 0}.mw-parser-output .cs1-code{color:inherit;background:inherit;border:none;padding:inherit}.mw-parser-output .cs1-hidden-error{display:none;color:var(--color-error,#d33)}.mw-parser-output .cs1-visible-error{color:var(--color-error,#d33)}.mw-parser-output .cs1-maint{display:none;color:#085;margin-left:0.3em}.mw-parser-output .cs1-kern-left{padding-left:0.2em}.mw-parser-output .cs1-kern-right{padding-right:0.2em}.mw-parser-output .citation .mw-selflink{font-weight:inherit}@media screen{.mw-parser-output .cs1-format{font-size:95%}html.skin-theme-clientpref-night .mw-parser-output .cs1-maint{color:#18911f}}@media screen and (prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .cs1-maint{color:#18911f}}


/* end https://en.wikipedia.org/ */
</style><a href="ISBN_(identifier)" class="mw-redirect" title="ISBN (identifier)">ISBN</a>&nbsp;<bdi>978-0321774514</bdi></span>
</li>
<li id="cite_note-embler_db_refactoring-2"><span class="mw-cite-backlink"><b><a href="#cite_ref-embler_db_refactoring_2-0">^</a></b></span> <span class="reference-text"><i>Scott Ambler</i> Catalog of Database Refactorings - Agile Data - URL: <a rel="nofollow" class="external free" href="http://agiledata.org/essays/databaseRefactoringCatalog.html">http://agiledata.org/essays/databaseRefactoringCatalog.html</a></span>
</li>
<li id="cite_note-access_refactoring_1-3"><span class="mw-cite-backlink"><b><a href="#cite_ref-access_refactoring_1_3-0">^</a></b></span> <span class="reference-text"><i>Струзік, В. А.</i> Категорія рефакторинг доступу / В. А. Струзік // Комп’ютерні науки, інформаційні технології та системи управління&nbsp;: Міжнародна науково-технічна конференція студентів, аспірантів та молодих вчених, 27–29 листопада 2019 р. – Івано-Франківськ&nbsp;: Прикарпатський національний університет ім. Василя Стефаника, 2019. – С. 20-21. URL: <a rel="nofollow" class="external free" href="http://dspace.nuft.edu.ua/jspui/handle/123456789/31516">http://dspace.nuft.edu.ua/jspui/handle/123456789/31516</a></span>
</li>
<li id="cite_note-access_refactoring_2-4"><span class="mw-cite-backlink"><b><a href="#cite_ref-access_refactoring_2_4-0">^</a></b></span> <span class="reference-text"><i>Струзік, В. А.</i> Категорія рефакторинг доступу / В. А. Струзік, С. В. Грибков, В. В. Чобану // Наукові праці НУХТ. – Т. 26, № 2. – 2020. – С. 31–49. URL: <a rel="nofollow" class="external free" href="http://dspace.nuft.edu.ua/jspui/handle/123456789/31515">http://dspace.nuft.edu.ua/jspui/handle/123456789/31515</a></span>
</li>
<li id="cite_note-access_refactoring_medium-5"><span class="mw-cite-backlink"><b><a href="#cite_ref-access_refactoring_medium_5-0">^</a></b></span> <span class="reference-text"> <i>Vladislav Struzik, PhD</i> Refactoring: yesterday, today, tomorrow. URL: <a rel="nofollow" class="external free" href="https://medium.com/@struzik/refactoring-yesterday-today-tomorrow-7fc8c845cfb1">https://medium.com/@struzik/refactoring-yesterday-today-tomorrow-7fc8c845cfb1</a> </span>
</li>
</ol></div></div>
<div class="mw-heading mw-heading2"><h2 id="External_links">External links</h2></div>
<ul><li><a rel="nofollow" class="external text" href="http://www.databaserefactoring.com">Database Refactoring Website</a> by Pramod Sadalage</li></ul>
<div class="navbox-styles"><style data-mw-deduplicate="TemplateStyles:r1129693374">
/* start https://en.wikipedia.org/ */


.mw-parser-output .hlist dl,.mw-parser-output .hlist ol,.mw-parser-output .hlist ul{margin:0;padding:0}.mw-parser-output .hlist dd,.mw-parser-output .hlist dt,.mw-parser-output .hlist li{margin:0;display:inline}.mw-parser-output .hlist.inline,.mw-parser-output .hlist.inline dl,.mw-parser-output .hlist.inline ol,.mw-parser-output .hlist.inline ul,.mw-parser-output .hlist dl dl,.mw-parser-output .hlist dl ol,.mw-parser-output .hlist dl ul,.mw-parser-output .hlist ol dl,.mw-parser-output .hlist ol ol,.mw-parser-output .hlist ol ul,.mw-parser-output .hlist ul dl,.mw-parser-output .hlist ul ol,.mw-parser-output .hlist ul ul{display:inline}.mw-parser-output .hlist .mw-empty-li{display:none}.mw-parser-output .hlist dt::after{content:": "}.mw-parser-output .hlist dd::after,.mw-parser-output .hlist li::after{content:" · ";font-weight:bold}.mw-parser-output .hlist dd:last-child::after,.mw-parser-output .hlist dt:last-child::after,.mw-parser-output .hlist li:last-child::after{content:none}.mw-parser-output .hlist dd dd:first-child::before,.mw-parser-output .hlist dd dt:first-child::before,.mw-parser-output .hlist dd li:first-child::before,.mw-parser-output .hlist dt dd:first-child::before,.mw-parser-output .hlist dt dt:first-child::before,.mw-parser-output .hlist dt li:first-child::before,.mw-parser-output .hlist li dd:first-child::before,.mw-parser-output .hlist li dt:first-child::before,.mw-parser-output .hlist li li:first-child::before{content:" (";font-weight:normal}.mw-parser-output .hlist dd dd:last-child::after,.mw-parser-output .hlist dd dt:last-child::after,.mw-parser-output .hlist dd li:last-child::after,.mw-parser-output .hlist dt dd:last-child::after,.mw-parser-output .hlist dt dt:last-child::after,.mw-parser-output .hlist dt li:last-child::after,.mw-parser-output .hlist li dd:last-child::after,.mw-parser-output .hlist li dt:last-child::after,.mw-parser-output .hlist li li:last-child::after{content:")";font-weight:normal}.mw-parser-output .hlist ol{counter-reset:listitem}.mw-parser-output .hlist ol>li{counter-increment:listitem}.mw-parser-output .hlist ol>li::before{content:" "counter(listitem)"\a0 "}.mw-parser-output .hlist dd ol>li:first-child::before,.mw-parser-output .hlist dt ol>li:first-child::before,.mw-parser-output .hlist li ol>li:first-child::before{content:" ("counter(listitem)"\a0 "}


/* end https://en.wikipedia.org/ */
</style><style data-mw-deduplicate="TemplateStyles:r1236075235">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbox{box-sizing:border-box;border:1px solid #a2a9b1;width:100%;clear:both;font-size:88%;text-align:center;padding:1px;margin:1em auto 0}.mw-parser-output .navbox .navbox{margin-top:0}.mw-parser-output .navbox+.navbox,.mw-parser-output .navbox+.navbox-styles+.navbox{margin-top:-1px}.mw-parser-output .navbox-inner,.mw-parser-output .navbox-subgroup{width:100%}.mw-parser-output .navbox-group,.mw-parser-output .navbox-title,.mw-parser-output .navbox-abovebelow{padding:0.25em 1em;line-height:1.5em;text-align:center}.mw-parser-output .navbox-group{white-space:nowrap;text-align:right}.mw-parser-output .navbox,.mw-parser-output .navbox-subgroup{background-color:#fdfdfd}.mw-parser-output .navbox-list{line-height:1.5em;border-color:#fdfdfd}.mw-parser-output .navbox-list-with-group{text-align:left;border-left-width:2px;border-left-style:solid}.mw-parser-output tr+tr>.navbox-abovebelow,.mw-parser-output tr+tr>.navbox-group,.mw-parser-output tr+tr>.navbox-image,.mw-parser-output tr+tr>.navbox-list{border-top:2px solid #fdfdfd}.mw-parser-output .navbox-title{background-color:#ccf}.mw-parser-output .navbox-abovebelow,.mw-parser-output .navbox-group,.mw-parser-output .navbox-subgroup .navbox-title{background-color:#ddf}.mw-parser-output .navbox-subgroup .navbox-group,.mw-parser-output .navbox-subgroup .navbox-abovebelow{background-color:#e6e6ff}.mw-parser-output .navbox-even{background-color:#f7f7f7}.mw-parser-output .navbox-odd{background-color:transparent}.mw-parser-output .navbox .hlist td dl,.mw-parser-output .navbox .hlist td ol,.mw-parser-output .navbox .hlist td ul,.mw-parser-output .navbox td.hlist dl,.mw-parser-output .navbox td.hlist ol,.mw-parser-output .navbox td.hlist ul{padding:0.125em 0}.mw-parser-output .navbox .navbar{display:block;font-size:100%}.mw-parser-output .navbox-title .navbar{float:left;text-align:left;margin-right:0.5em}body.skin--responsive .mw-parser-output .navbox-image img{max-width:none!important}@media print{body.ns-0 .mw-parser-output .navbox{display:none!important}}


/* end https://en.wikipedia.org/ */
</style></div><div role="navigation" class="navbox" aria-labelledby="Database414" style="padding:3px"><table class="nowraplinks mw-collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><style data-mw-deduplicate="TemplateStyles:r1239400231">
/* start https://en.wikipedia.org/ */


.mw-parser-output .navbar{display:inline;font-size:88%;font-weight:normal}.mw-parser-output .navbar-collapse{float:left;text-align:left}.mw-parser-output .navbar-boxtext{word-spacing:0}.mw-parser-output .navbar ul{display:inline-block;white-space:nowrap;line-height:inherit}.mw-parser-output .navbar-brackets::before{margin-right:-0.125em;content:"[ "}.mw-parser-output .navbar-brackets::after{margin-left:-0.125em;content:" ]"}.mw-parser-output .navbar li{word-spacing:-0.125em}.mw-parser-output .navbar a>span,.mw-parser-output .navbar a>abbr{text-decoration:inherit}.mw-parser-output .navbar-mini abbr{font-variant:small-caps;border-bottom:none;text-decoration:none;cursor:inherit}.mw-parser-output .navbar-ct-full{font-size:114%;margin:0 7em}.mw-parser-output .navbar-ct-mini{font-size:114%;margin:0 4em}html.skin-theme-clientpref-night .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}@media(prefers-color-scheme:dark){html.skin-theme-clientpref-os .mw-parser-output .navbar li a abbr{color:var(--color-base)!important}}@media print{.mw-parser-output .navbar{display:none!important}}


/* end https://en.wikipedia.org/ */
</style><div id="Database414" style="font-size:114%;margin:0 4em"><a href="Database" title="Database">Database</a></div></th></tr><tr><th scope="row" class="navbox-group" style="width:1%">Main</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database#Major_database_usage_requirements" title="Database">Requirements</a></li>
<li><a href="Database_theory" title="Database theory">Theory</a></li>
<li><a href="Database_object" title="Database object">Database object</a></li>
<li><a href="Database_model" title="Database model">Models</a></li>
<li><a href="Database_management_system" class="mw-redirect" title="Database management system">Database management system</a></li>
<li><a href="Database_machine" title="Database machine">Machine</a></li>
<li><a href="Database_engine" title="Database engine">Engine</a></li>
<li><a href="Database_server" title="Database server">Server</a></li>
<li><a href="Database_application" title="Database application">Application</a></li>
<li><a href="Database_connection" title="Database connection">Connection</a>
<ul><li><a href="Datasource" title="Datasource">datasource</a></li>
<li><a href="Data_Source_Name" class="mw-redirect" title="Data Source Name">DSN</a></li></ul></li>
<li><a href="Database_administrator" title="Database administrator">Administrator</a></li>
<li><a href="Synonym_(database)" title="Synonym (database)">Synonym</a></li>
<li><a href="Lock_(database)" class="mw-redirect" title="Lock (database)">Lock</a></li>
<li>Types</li>
<li><a href="Comparison_of_database_tools" class="mw-redirect" title="Comparison of database tools">Tools</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Database#Database_languages" title="Database">Languages</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Data_definition_language" title="Data definition language">Data definition</a></li>
<li><a href="Data_manipulation_language" title="Data manipulation language">Data manipulation</a></li>
<li><a href="Query_language" title="Query language">Query</a>
<ul><li><a href="Information_retrieval_query_language" class="mw-redirect" title="Information retrieval query language">information retrieval</a></li></ul></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Database_security" title="Database security">Security</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database_activity_monitoring" title="Database activity monitoring">Activity monitoring</a></li>
<li><a href="Database_audit" title="Database audit">Audit</a></li>
<li><a href="Database_forensics" title="Database forensics">Forensics</a></li>
<li><a href="Negative_database" title="Negative database">Negative database</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Database_design" title="Database design">Design</a></th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Entity%E2%80%93relationship_model" title="Entity–relationship model">Entities and relationships</a> (and <a href="Enhanced_entity%E2%80%93relationship_model" title="Enhanced entity–relationship model">Enhanced</a> notation)</li>
<li><a href="Database_normalization" title="Database normalization">Normalization</a></li>
<li><a href="Database_schema" title="Database schema">Schema</a></li>

<li><a href="Cardinality_(data_modeling)" title="Cardinality (data modeling)">Cardinality</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Programming</th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database_abstraction_layer" title="Database abstraction layer">Abstraction layer</a></li>
<li><a href="Object%E2%80%93relational_mapping" title="Object–relational mapping">Object–relational mapping</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">Management</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database_virtualization" title="Database virtualization">Virtualization</a></li>
<li><a href="Database_tuning" title="Database tuning">Tuning</a>
<ul><li><a href="Database_caching" title="Database caching">caching</a></li></ul></li>
<li><a href="Data_migration#Database_migration" title="Data migration">Migration</a></li>
<li><a href="Database_preservation" title="Database preservation">Preservation</a></li>
<li><a href="Database_integrity" class="mw-redirect" title="Database integrity">Integrity</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%"><a href="Lists_of_databases" title="Lists of databases">Lists of</a></th><td class="navbox-list-with-group navbox-list navbox-odd hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="List_of_academic_databases_and_search_engines" title="List of academic databases and search engines">Academic</a></li>
<li><a href="List_of_biological_databases" title="List of biological databases">Biological</a></li>
<li><a href="List_of_biodiversity_databases" title="List of biodiversity databases">Biodiversity</a></li>
<li><a href="List_of_facial_expression_databases" title="List of facial expression databases">Facial expression</a></li>
<li><a href="List_of_online_databases" title="List of online databases">Online</a></li>
<li><a href="List_of_online_music_databases" title="List of online music databases">Online music</a></li>
<li><a href="List_of_online_real_estate_databases" title="List of online real estate databases">Online real estate</a></li></ul>
</div></td></tr><tr><th scope="row" class="navbox-group" style="width:1%">See also</th><td class="navbox-list-with-group navbox-list navbox-even hlist" style="width:100%;padding:0"><div style="padding:0 0.25em">
<ul><li><a href="Database-centric_architecture" title="Database-centric architecture">Database-centric architecture</a></li>
<li><a href="Intelligent_database" title="Intelligent database">Intelligent database</a></li>
<li><a href="Two-phase_locking" title="Two-phase locking">Two-phase locking</a></li>
<li><a href="Locks_with_ordered_sharing" title="Locks with ordered sharing">Locks with ordered sharing</a></li>
<li><a href="Load_file" title="Load file">Load file</a></li>
<li><a href="Database_publishing" title="Database publishing">Publishing</a></li>
<li><a href="Halloween_Problem" title="Halloween Problem">Halloween Problem</a></li>
<li><a href="Log_shipping" title="Log shipping">Log shipping</a></li></ul>
</div></td></tr><tr><td class="navbox-abovebelow hlist" colspan="2"><div><b><span class="noviewer" typeof="mw:File"><span title="WikiProject"></span></span> WikiProject</b> <b><span class="noviewer" typeof="mw:File"><span title="Category"></span></span> Category</b></div></td></tr></tbody></table></div></div><!--htdig_noindex--><div><div class="zim-footer">
This article is issued from <a class="external text" title="Last edited on 2024-08-10" href="https://en.wikipedia.org/wiki/?title=Database_refactoring&amp;oldid=1239631739">Wikipedia</a>. The text is available under <a class="external text" href="https://creativecommons.org/licenses/by-sa/4.0/deed.en">Creative Commons Attribution-Share Alike 4.0</a> unless otherwise noted. Additional terms may apply for the media files.
</div>
</div><!--/htdig_noindex--></div>
</div>
</main>
</div>
</div>
</div>

</body></html>